<?php
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * 广告控制器-后台
 *
 * @desc    广告控制器
 * @version 1.0.0
 * @author  Jason
 * @date    2017年5月2日 下午5:09:07
 * 
 * @desc    完善文档注释
 * @version 1.1.0
 * @date	2017年6月27日 下午4:39:56
 * 
 * @title 广告管理
 * @entry http://discovery.segway.com
 */
class Advertisement extends MY_Manager_Controller
{
	/** @var Lib_advertisement */
	public $lib_advertisement = null;
	
	public function __construct()
	{
		parent::__construct();
		
		$this->load->library('lib_advertisement');
		
		$this->set_mutable_view_var('head.title', 'Advertisement - Management');
		$this->set_mutable_view_var('head.keywords', '');
		$this->set_mutable_view_var('head.description', '');
		
		$this->lang->load('advertisement');
	}
	
	/**
	 * 首页 -> 列表页
	 *
	 * @return html
	 * 
	 * @command pass noneurl
	 */
	public function index()
	{
		$this->listing();
	}
	
	/**
	 * 广告列表页
	 * 
	 * @desc    listing
	 * @author  Jason
	 * @date	2017年6月12日 下午2:59:51
	 * @link    /manage/advertisement/listing
	 */
	public function listing($page = 1, $number = 20)
	{
		$conditions = $this->lib_advertisement->get_conditions();
		$list = $this->lib_advertisement->get_ads_for_list($conditions, $page, $number);
		$data['list'] = $list;
		
		$this->load->view('manager/advertisement/list', $data);
	}
	
	/**
	 * 广告位列表页
	 *
	 * @desc    listing_position
	 * @author  Jason
	 * @date	2017年7月21日 下午3:07:50
	 * @link    /manage/advertisement/listing_position
	 */
	public function listing_position($page = 1, $number = 20)
	{
		// MARK 这里可能需要加上 $mapping 参数
		$conditions = $this->lib_advertisement->get_conditions();
		$list = $this->lib_advertisement->get_positions_for_list($conditions, $page, $number);
		$data['list'] = $list;
		
		$this->load->view('manager/advertisement/list_position', $data);
	}
	// MARK ajax 列表页
	/**
	 * 广告列表页，ajax，JSON
	 *
	 * @desc    ajax_listing
	 * @author  Jason
	 * @date	2017年6月12日 下午2:59:51
	 * @link    /manage/advertisement/ajax_listing
	 */
	public function ajax_listing($page = 1, $number = 20)
	{
		$conditions = $this->lib_advertisement->get_conditions();
		$list = $this->lib_advertisement->get_ads_for_list($conditions, $page, $number);
		$data['list'] = $list;
		
		Lib_json::renderSuccess($data);
	}
	
	/**
	 * 广告位列表页，ajax，JSON
	 *
	 * @desc    ajax_listing_position
	 * @author  Jason
	 * @date	2017年7月21日 下午3:07:50
	 * @link    /manage/advertisement/ajax_listing_position
	 */
	public function ajax_listing_position($page = 1, $number = 20)
	{
		// MARK 这里可能需要加上 $mapping 参数
		$conditions = $this->lib_advertisement->get_conditions();
		$list = $this->lib_advertisement->get_positions_for_list($conditions, $page, $number);
		$data['list'] = $list;
		
		Lib_json::renderSuccess($data);
	}
	
	/**
	 * 广告详情 - 编辑前信息载入
	 * 
	 * @desc    编辑前信息载入
	 * @method  GET
	 * @author  Jason
	 * @date	2017年5月31日 下午2:59:03
	 * 
	 * @param   number $id       ID，默认为 0，代表新增一条记录
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example 如果参数为 id=6
	 * 			那么URL为 /manage/advertisement/detail/6
	 * 
	 * @demoParam id 6
	 */
	public function detail($id = 0)
	{
		$advertisement = $this->lib_advertisement->get_ad_for_detail($id);
		if (empty($advertisement)) {
			$advertisement = [];
		}
		
		$data['content']['advertisement'] = $advertisement;
		
		$this->load->view('manager/advertisement/detail', $data);
	}
	
	/**
	 * 广告位详情 - 编辑前信息载入
	 *
	 * @desc    编辑前信息载入
	 * @method  GET
	 * @author  Jason
	 * @date	2017年5月31日 下午2:59:03
	 *
	 * @param   number $id       ID，默认为 0，代表新增一条记录
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example 如果参数为 id=36
	 * 			那么URL为 /manage/advertisement/detail_position/36
	 * 
	 * @demoParam id 36
	 */
	public function detail_position($id = 0)
	{
		$advertisement = $this->lib_advertisement->get_position_for_detail($id);
		if (empty($advertisement)) {
			$advertisement = [];
		}
		
		$data['content']['advertisement'] = $advertisement;
		
		$this->load->view('manager/advertisement/detail_position', $data);
	}
	
	/**
	 * 广告详情编辑提交 - 编辑完后的信息提交 - 增加 & 修改
	 *
	 * @desc    编辑完后的信息提交 - 增加 & 修改
	 * @method  POST
	 * @author  Jason
	 * @date	2017年5月24日 下午5:39:14
	 *
	 * @param   number $id		 ID，默认为 0，代表增加 & 非0代表修改
	 * ...
	 *
	 * @return  JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link    /manage/advertisement/ajax_create
	 * 
	 * @command noneurl
	 */
	public function ajax_create()
	{
		if (empty($id = $this->input->post('id'))) {
			list($status, $content) = $this->lib_advertisement->create();
		} else {
			list($status, $content) = $this->lib_advertisement->update();
		}
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 广告位详情编辑提交 - 编辑完后的信息提交 - 增加 & 修改
	 *
	 * @desc    编辑完后的信息提交 - 增加 & 修改
	 * @method  POST
	 * @author  Jason
	 * @date	2017年6月13日 下午6:30:57
	 *
	 * @param   number $id		 ID，默认为 0，代表增加 & 非0代表修改
	 * ...
	 *
	 * @return  JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link    /manage/advertisement/ajax_create_position
	 * 
	 * @command noneurl
	 */
	public function ajax_create_position()
	{
		if (empty($id = $this->input->post('id'))) {
			list($status, $content) = $this->lib_advertisement->create('position');
		} else {
			list($status, $content) = $this->lib_advertisement->update('position');
		}
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 删除广告
	 *
	 * @desc	直接删除广告
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月28日 下午7:03:07
	 *
	 * @param	number $id	广告ID
	 *
	 * @return	JSON	标准JSON格式响应
	 *
	 * @link	/manager/advertisement/ajax_delete
	 *
	 * @command noneurl
	 */
	public function ajax_delete()
	{
		list($status, $content) = $this->lib_advertisement->delete();
		
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess([]);
		}
	}
	
	/**
	 * 广告显示不显示
	 *
	 * @method  POST
	 * @author  Jason
	 * @date	2017年6月14日 下午2:28:23
	 *
	 * @param   number $id
	 *
	 * @return  JSON	标准JSON格式响应
	 *
	 * @link /manager/advertisement/ajax_toggle_show
	 * 
	 * @command noneurl
	 */
	public function ajax_toggle_show()
	{
		$id = $this->input->post_get('id');
		list($status, $content) = $this->lib_advertisement->toggle_status_enabled($id);
	
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess(['data' => $content]);
		}
	}
	
}
